package com.jyhg.core.common.utils
{
	import flash.utils.ByteArray;
	
	/**
	 * 
	 * @author Jonny
	 * 
	 */
	public class ByteArrayTools
	{
		public function ByteArrayTools()
		{
		}
		
		/**
		 *获取字符串字节长度 
		 * @param obj
		 * @return 
		 * 
		 */
		public static function getStringByteArrayLength(str:String , charSet:String = "gb2312"):int
		{
			if(str is String)
			{
				var byteArray:ByteArray = new ByteArray();
				byteArray.writeMultiByte(str,charSet);
				return byteArray.length;
			}
			else
			{
				throw new Error("参数类型错误");
				return -1;
			}
		}
		
		/**
		 *对象转字节流 
		 * @param obj
		 * @return 
		 * 
		 */
		public static function toByteArray(obj:*):ByteArray
		{
			var byteArray:ByteArray = new ByteArray();
			byteArray.writeObject(obj);
			return byteArray;
		}
		
		/**
		 *字节流转对象 
		 * @param byteArray
		 * @return 
		 * 
		 */
		public static function toObject(byteArray:ByteArray):Object
		{
			var obj:Object;
			if(byteArray == null)
			{
				return null;
			}
			else
			{			
				byteArray.position = 0;
				obj = byteArray.readObject();
				return obj;
			}
		}
	}
}